return {
  { import = "lazyvim.plugins.extras.lang.typescript" },
  { import = "lazyvim.plugins.extras.lang.tailwind" },
  { import = "lazyvim.plugins.extras.lang.markdown" },
  { import = "lazyvim.plugins.extras.lang.toml" },
  { import = "lazyvim.plugins.extras.lang.json" },
  { import = "lazyvim.plugins.extras.lang.rust" },
  { import = "lazyvim.plugins.extras.lsp.neoconf" },
  { import = "lazyvim.plugins.extras.linting.eslint" },
  { import = "lazyvim.plugins.extras.formatting.prettier" },
  { import = "lazyvim.plugins.extras.lang.astro" },
  { import = "lazyvim.plugins.extras.lang.dart" },

  {
    "nvim-lint",
    enabled = false,
  },

  {
    "folke/trouble.nvim",
    enabled = false,
    opts = { use_diagnostic_signs = true },
  },

  {
    "neovim/nvim-lspconfig",
    dependencies = { "yioneko/nvim-vtsls", { "dmmulroy/ts-error-translator.nvim" } },
    opts = function(_, opts)
      -- local keys = require("lazyvim.plugins.lsp.keymaps").get()
      -- keys[#keys + 1] = { "K", false }
      -- opts.diagnostics = {
      --   float = {
      --     border = "rounded",
      --   },
      -- }
      local lsp_configurations = require("lspconfig.configs")

      lsp_configurations.vtsls = require("vtsls").lspconfig

      -- npm install -g --force @vlabo/cspell-lsp
      if not lsp_configurations.cspell_lsp then
        lsp_configurations.cspell_lsp = {
          default_config = {
            cmd = { "cspell-lsp", "--stdio", "--config", "/Users/sternelee/.config/nvim/cspell.json" }, -- If the --config parameter is missing it will use the project cspell.json file.
            filetypes = { "go", "rust", "js", "ts", "html", "css", "json", "yaml", "markdown", "gitcommit" },
            root_dir = require("lspconfig.util").root_pattern(".git"),
          },
        }
      end
      opts.servers.cspell_lsp = {}
    end,
  },
  {
    "neovim/nvim-lspconfig",
    -- dependencies = { "cordx56/rustowl" },
    opts = {
      servers = {
        -- vtsls = {
        --   enabled = false,
        -- },
        -- copilot = { enabled = true },
        typos_lsp = {
          enabled = false,
          cmd_env = { RUST_LOG = "info" },
          config = "~/.config/nvim/typos.toml",
          init_options = {
            diagnosticSeverity = "Info",
          },
        },
        -- rustowl = {
        --   trigger = {
        --     hover = false,
        --   },
        -- },
      },
    },
  },

  {
    "pmizio/typescript-tools.nvim",
    enabled = false,
    requires = { "neovim/nvim-lspconfig" },
    opts = {
      on_attach = function(client)
        client.server_capabilities.semanticTokensProvider = nil
        if vim.lsp.inlay_hint then
          vim.lsp.inlay_hint.enable(true)
        end
      end,
      settings = {
        separate_diagnostic_server = true,
        publish_diagnostic_on = "insert_leave",
        expose_as_code_action = {},
        tsserver_locale = "en",
        complete_function_calls = false,
        include_completions_with_insert_text = true,
        code_lens = "on",
        disable_member_code_lens = true,
        jsx_close_tag = {
          enable = false,
          filetypes = { "javascriptreact", "typescriptreact" },
        },
        -- tsserver_path = "/opt/homebrew/bin/tsserver",
        tsserver_plugins = {
          -- npm i -g typescript-language-server typescript @styled/typescript-styled-plugin typescript-styled-plugin
          -- for TypeScript v4.9+
          -- "@styled/typescript-styled-plugin",
          -- or for older TypeScript versions
          -- "typescript-styled-plugin",
        },
        tsserver_max_memory = "auto",
        tsserver_file_preferences = {
          includeInlayParameterNameHints = "all",
          includeCompletionsForModuleExports = true,
          quotePreference = "auto",
        },
        tsserver_format_options = {
          allowIncompleteCompletions = false,
          allowRenameOfImportPath = false,
        },
      },
    },
  },
  -- {
  --   "dmmulroy/tsc.nvim",
  --   ft = { "typescript", "typescriptreact" },
  --   event = { "LspAttach" },
  --   config = true,
  -- },

  {
    "https://git.sr.ht/~whynothugo/lsp_lines.nvim",
    event = "LspAttach",
    config = function()
      require("lsp_lines").setup()
      vim.diagnostic.config({
        underline = true,
        signs = true,
        update_in_insert = false,
        severity_sort = true,
        virtual_lines = {
          only_current_line = false,
          highlight_whole_line = true,
        },
        float = false,
        virtual_text = false,
      })
    end,
    keys = {
      {
        "<Leader>tp",
        function()
          require("lsp_lines").toggle()
        end,
        desc = "Toggle lsp_lines",
      },
    },
  },

  -- {
  --   "dnlhc/glance.nvim",
  --   event = { "LspAttach" },
  --   opts = {},
  -- },

  {
    "aznhe21/actions-preview.nvim",
    event = { "LspAttach" },
    opts = {},
    keys = {
      {
        "gm",
        function()
          require("actions-preview").code_actions()
        end,
        desc = "LSP action preview",
      },
    },
  },
  {
    "bassamsdata/namu.nvim",
    event = { "LspAttach" },
    config = function()
      require("namu").setup({
        -- Enable the modules you want
        namu_symbols = {
          enable = true,
          options = {}, -- here you can configure namu
        },
        -- Optional: Enable other modules if needed
        colorscheme = {
          enable = false,
          options = {
            -- NOTE: if you activate persist, then please remove any vim.cmd("colorscheme ...") in your config, no needed anymore
            persist = true, -- very efficient mechanism to Remember selected colorscheme
            write_shada = false, -- If you open multiple nvim instances, then probably you need to enable this
          },
        },
        ui_select = { enable = false }, -- vim.ui.select() wrapper
      })
      -- === Suggested Keymaps: ===
      local namu = require("namu.namu_symbols")
      local colorscheme = require("namu.colorscheme")
      vim.keymap.set("n", "<leader>ss", namu.show, {
        desc = "Jump to LSP symbol",
        silent = true,
      })
      vim.keymap.set("n", "<leader>th", colorscheme.show, {
        desc = "Colorscheme Picker",
        silent = true,
      })
    end,
  },
}
